package com.clhbolg.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 定时任务调度业务对象 t_job
 *
 * @author cailinhu
 * @date 2023-02-08
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class JobBo extends BaseEntity {

    /**
     * 任务ID
     */
    @NotNull(message = "任务ID不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 任务名称
     */
    @NotBlank(message = "任务名称不能为空", groups = { EditGroup.class })
    private String jobName;

    /**
     * 任务组名
     */
    @NotBlank(message = "任务组名不能为空", groups = { EditGroup.class })
    private String jobGroup;

    /**
     * 调用目标字符串
     */
    @NotBlank(message = "调用目标字符串不能为空", groups = { AddGroup.class, EditGroup.class })
    private String invokeTarget;

    /**
     * cron执行表达式
     */
    @NotBlank(message = "cron执行表达式不能为空", groups = { AddGroup.class, EditGroup.class })
    private String cronExpression;

    /**
     * 计划执行错误策略（1立即执行 2执行一次 3放弃执行）
     */
    @NotNull(message = "计划执行错误策略（1立即执行 2执行一次 3放弃执行）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer misfirePolicy;

    /**
     * 是否并发执行（0允许 1禁止）
     */
    @NotNull(message = "是否并发执行（0允许 1禁止）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer concurrent;

    /**
     * 状态（0正常 1暂停）
     */
    @NotNull(message = "状态（0正常 1暂停）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer status;

    /**
     * 备注信息
     */
    @NotBlank(message = "备注信息不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;


}
